package com.penghaisoft.microwms.base.web.factory.dao;

import com.penghaisoft.microwms.common.mapper.BaseMapper;
import com.penghaisoft.microwms.common.base.model.BaseFactory;
import com.penghaisoft.microwms.common.base.model.BaseFactoryCodeInfo;
import com.penghaisoft.microwms.common.base.model.BaseFactoryNameInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 工厂处理
 * @author luoteng
 * @date 2017年5月24日 上午10:45:48
 * @version 1.0
 */
public interface BaseFactoryMapper extends BaseMapper<BaseFactory> {
	/**
	 * @Title checkUnique
	 * @Description 工厂主键是否唯一
	 * @author luoteng
	 * @date 2017年5月24日 上午10:46:33
	 * @param baseFactory
	 * @return int
	 */
	int checkUnique(BaseFactory baseFactory);

	/**
	 * @Title checkUpdUnique
	 * @Description 工厂主键是否唯一（更新时用）
	 * @author luoteng
	 * @date 2017年5月24日 上午10:47:48
	 * @param baseFactory
	 * @return int
	 */
	int checkUpdUnique(BaseFactory baseFactory);

	/**
	 * @Title queryFactoryTypeAll
	 * @Description 获取所有工厂类型
	 * @author luoteng
	 * @date 2017年5月24日 上午10:48:26
	 * @return List<BaseFactory>
	 */
	List<BaseFactory> queryFactoryTypeAll();

	/**
	 * @Title queryFactoriesByType
	 * @Description 根据工厂类型获取工厂编码
	 * @author luoteng
	 * @date 2017年5月24日 上午10:48:40
	 * @param factoryType
	 * @return List<BaseFactory>
	 */
	List<BaseFactory> queryFactoriesByType(String factoryType);

	/** 
	* @Title: queryUserFactoryByUserId 
	* @Description: 查询用户归属的工厂
	* @author zhangxu 
	* @2017年6月6日:2017年6月6日:下午1:39:22
	* @param @param userId
	* @param @return    
	* @return List<BaseFactory>
	* @version V0.1    
	* @throws 
	*/
	List<BaseFactory> queryUserFactoryByUserId(String userId);
	/**
	 * @Description: 根据SAP工厂号，关联查询相关数据
	 * @param @param sapFactoryCode
	 * @param @return   
	 * @return List<BaseFactoryCodeInfo>  
	 * @author sun_yq
	 * @date 2017年9月5日 下午5:51:06
	 */
	List<BaseFactoryCodeInfo> queryCodeBySapFactoryCode(@Param("sapFactoryCode") String sapFactoryCode);
	/**
	 * @Description: 查询工厂名称
	 * @param @param factoryCode
	 * @param @return   
	 * @return List<BaseFactory>  
	 * @author sun_yq
	 * @date 2017年11月16日 上午11:02:28
	 */
	List<BaseFactory> queryFactoryNameByFactoryCode(@Param("factoryCode") String factoryCode);
	/**
	 * @Description: 查询工厂名称、仓库名称等信息
	 * @param @param factoryCode
	 * @param @return   
	 * @return List<BaseFactoryNameInfo>  
	 * @author sun_yq
	 * @date 2017年11月16日 上午10:49:33
	 */
	List<BaseFactoryNameInfo> queryNameByFactoryCode(@Param("factoryCode") String factoryCode);
	/** 
	 * @Title queryFactoryAll
	 * @Description 查询所有工厂
	 * @author jzh
	 * @return List<BaseFactory>
	 */

	List<BaseFactory> queryFactoryAll();
}